SQL Server - Módulo de Acesso ao MS SQL Server via Windows Forms

Parâmetros deste Módulo

Adicione um form ( no exemplo chamei ele de frmPrincipal) e adicione 4 campos:
   •1-Servidor-txtServidor
   •2-Banco de dados-tstBD
   •3-Usuário-txtUsuario
   •4-Senha-txtSenha
Não se esqueça que senha você tem que colocar no PassWordChar o * ou # para que ninguém visualize o texto da senha digitada.

Para funcionar também é preciso instalar o System.Data que permite o acesso aos objetos do SQL Server.

Tipos de Resultados que podem ser obtidos pelo Módulo

Criei as funções de acesso ao MS SQL de todos os tipos:
   •1-DefineStrConexao: Monta o string de conexão.
   •2-AbreConexao: Abre a conexão com o servidor SQL se já não estiver aberta.
   •3-MS_SQL_SRV_DS: Faz a pesquisa e retorna um Dataset. No Dataset.tables(0) estarão os dados retornados pela pesquisa.
   •4-MS_SQL_SRV_EX: Executa um comando que não retorna nada (truncate, delete, etc) exceto uma mensagem de erro se estiver errado.
   •5-MS_SQL_SRV_INT: Executa um comando que retorna apenas um inteiro como na pesquisa de um índice ou um next value.
   •6-MS_SQL_SRV_STR>Executa um comando que retorna um string. Apenas um string como um nome de tabela.
   •7-MS_SQL_SRV_Single>Executa um comando que retorna um single. Apenas um número single.
   •8-MS_SQL_RS: Executa um comando que retorna um Recordset. É o ideal para popular um GridView.
   •9-MS_SQL_SQL_Proc: Executa uma proc. Possui 2 parâmetros: um é o comando e o segundo são os parâmetros da Proc.

Tratamento de erros

Criei uma variável global chamada erro assim se ocorrer um erro a mensagem será depositada nele.
Senão ocorrer nenhum erro a variavel erro virá em branco.

O conteúdo do módulo é o seguinte :

Imports System.Data.SqlClient

'gerenciador de pacotes - instalar o System Data Client

Module ModuloMSSQLWindowsForms

    Public cnstr As String = "" 'string de conexão com o banco de dados
    Public cncn As New SqlConnection 'conexão com o banco de dados
    Public Erro As String = "" 'troca de mensagens de erro

    ''' <summary>
    ''' Define o string de conexão com o banco de dados que dependente da url de acesso do site
    ''' </summary>
    Public Sub DefineStrConexao()
        cnstr = "Server=" + frmPrincipal.txtServidor.Text + ";Database=" + frmPrincipal.txtBD.Text + ";User Id=" + frmPrincipal.txtUsuario.Text + ";Password=" + frmPrincipal.txtSenha.Text
    End Sub

    ''' <summary>
    ''' abre a conexão com o banco de dados
    ''' </summary>
    Public Sub AbreConexao()
        Erro = ""
        Try
            If cncn.ConnectionString = "" Then
                DefineStrConexao()
                cncn.ConnectionString = cnstr
                cncn.Open()
                Return
            End If
        Catch ex As SqlException
            Erro = ex.Message
        End Try

    End Sub

    ''' <summary>
    ''' Faz a pesquisa e retorna um DataSet
    ''' </summary>
    Public Function MS_SQL_SRV_DS(Query As String) As DataSet
        Erro = ""
        Try
            AbreConexao()
            Dim cmd = New SqlCommand(Query, cncn)
            Dim MS_SQL_SqlDtAdapter = New SqlDataAdapter(cmd)
            Dim DS As New DataSet()

            MS_SQL_SqlDtAdapter.Fill(DS)
            Return DS
        Catch ex As Exception
            Erro = ex.Message
            Return Nothing
        End Try
    End Function

    ''' <summary>
    '''executa um sql que não retorna nada
    ''' </summary>
    Public Sub MS_SQL_SRV_EX(query As String)
        Erro = ""
        Try
            AbreConexao()
            Dim cmd = New SqlCommand(query, cncn)
            cmd.CommandTimeout = 20000
            cmd.ExecuteNonQuery()
            cncn.Close()

        Catch ex As Exception
            Erro = ex.Message
            'Throw ex
        End Try
    End Sub

    ''' <summary>
    '''executa um sql que retorna um inteiro
    ''' </summary>
    Public Function MS_SQL_SRV_INT(query As String) As Integer
        Erro = ""
        Try
            AbreConexao()
            Dim cmd = New SqlCommand(query, cncn)
            cmd.CommandText = query
            Return cmd.ExecuteScalar()
        Catch ex As Exception
            Return Nothing 'erro
            Erro = ex.Message
            'Throw ex
        End Try
    End Function

    ''' <summary>
    ''' executa um sql que retorna um String
    ''' </summary>
    ''' <param name="query"></param>
    ''' <returns></returns>
    Public Function MS_SQL_SRV_STR(query As String) As String
        Erro = ""
        Try
            AbreConexao()
            Dim cmd = New SqlCommand(query, cncn)
            cmd.CommandText = query
            Return cmd.ExecuteScalar()
        Catch ex As Exception
            Erro = ex.Message
            Return Nothing
            'Throw ex
        End Try
    End Function


    ''' <summary>
    ''' executa um sql que retorna um single(sql)
    ''' </summary>
    ''' <param name="query"></param>
    ''' <returns></returns>
    Public Function MS_SQL_SRV_Single(query As String)
        Erro = ""
        Try
            AbreConexao()
            Dim cmd = New SqlCommand(query, cncn)
            cmd.CommandText = query
            Return cmd.ExecuteScalar()
        Catch ex As Exception
            Erro = ex.Message
            Return Nothing 'erro
            'Throw ex
        End Try
    End Function


    ''' <summary>
    '''faz a pesquisa e retorna um RecordSet
    ''' </summary>
    Public Function MS_SQL_RS(query As String) As DataSet
        Erro = ""
        Try
            AbreConexao()
            Dim da As New SqlDataAdapter(query, cncn)
            Dim ds As New DataSet
            da.Fill(ds)
            cncn.Close()
            Return ds

        Catch ex As SqlException
            Erro = ex.Message
            Return Nothing
            'Throw ex
        End Try

    End Function

    ''' <summary>
    ''' Executa uma procedure e retorna um dataset
    ''' Parametros = "P1,P2,P3,P4..."
    ''' </summary>
    Public Function MS_SQL_SQL_Proc(Procedure As String, Parametros As String) As DataSet
        Erro = ""
        Try
            Dim SQL As String = Procedure + " " + Parametros
            Dim cmd As New SqlCommand(SQL, cncn)
            Dim da As New SqlDataAdapter(cmd)
            Dim ds As New DataSet()
            da.Fill(ds)
            Return ds
        Catch ex As Exception
            Erro = ex.Message
            Return Nothing
            'Throw ex
        End Try
    End Function



    End Sub

End Module